In some integrated circuits, debug circuitry is integrated with one or more of the integrated circuit's electronic modules (e.g., processor cores) for the purpose of providing debug functionality for those electronic modules. Typical debug circuitry consists of a hardware block that has visibility, during operations, to an electronic module with which it is integrated. The debug circuitry may monitor various signals that the electronic module produces, for example, and may output or log information reflecting those signals for subsequent analysis (e.g., by external test equipment). This information may be particularly useful during hardware validation, as it may indicate problems with the hardware that may be corrected in subsequent design iterations (e.g., in subsequent versions of silicon).
Some integrated circuits include multiple electronic modules for which debug capability is desired (e.g., multiple processor cores, a Northbridge, a Southbridge, and so on). Accordingly, such integrated circuits may include multiple debug circuits (e.g., a debug circuit for each module for which debug capability is desired). During operations, each debug circuit may perform debug functions autonomously and independently from any other debug circuits that may be included in the integrated circuit. In other words, operations performed by one debug circuit are not influenced by operations performed by other debug circuits, and a debug circuit associated with one electronic module has no view of other electronic modules or their associated debug circuits.
Although debug circuits may provide significant visibility to what is occurring within various electronic modules, the isolated nature of each debug circuit's functionality makes it difficult accurately to debug state-related aspects of the integrated circuit that involve the participation of multiple electronic modules.